XAML এ Resources হল UI উপাদানগুলোর স্টাইল, ব্রাশ, কাস্টম ক্লাস বা যেকোনো ধরনের ডাটা এবং সেটিংস সংরক্ষণ করার জন্য ব্যবহৃত হয়। StaticResource এবং DynamicResource হল দুটি প্রধান পদ্ধতি যা রিসোর্স ব্যবহারের জন্য XAML এ ব্যবহৃত হয়। এই দুটি পদ্ধতির মধ্যে মূল পার্থক্য হলো, তাদের রিসোর্সগুলি কিভাবে এবং কখন রেজলভ বা রিফ্রেশ হয়।
StaticResource
StaticResource হল একটি রিসোর্স রেফারেন্স করার জন্য ব্যবহৃত পদ্ধতি, যা UI উপাদান বা রিসোর্সের মান কেবল অ্যাপ্লিকেশন লোড হওয়ার সময় একবার রেজলভ হয়। অর্থাৎ, StaticResource এর মান স্থির এবং পরিবর্তনশীল নয়। যদি রিসোর্সের মান পরিবর্তিত হয়, তাহলে UI তা স্বয়ংক্রিয়ভাবে প্রতিফলিত করবে না।
ব্যবহার:
- যখন রিসোর্সের মান স্থির এবং একবারই ব্যবহার করা হয়।
- UI এর স্থির অংশে যেমন স্টাইল, ব্রাশ, ফন্ট, ইত্যাদি ব্যবহারের জন্য উপযুক্ত।
উদাহরণ:
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="StaticResource Example" Height="300" Width="400">
<Window.Resources>
<SolidColorBrush x:Key="MyBrush" Color="LightBlue"/>
</Window.Resources>
<Grid Background="{StaticResource MyBrush}">
<Button Content="Click Me" Width="100" Height="50"/>
</Grid>
</Window>
এখানে:
StaticResourceব্যবহার করেMyBrushনামের রিসোর্সটি গ্রিডের ব্যাকগ্রাউন্ড হিসেবে ব্যবহার করা হয়েছে। এই রিসোর্সের মান একবার লোড হওয়ার পর পরিবর্তিত হবে না।
StaticResource এর সুবিধা:
- পারফরম্যান্স:
StaticResourceরিসোর্স একবার রেজলভ হয়, তাই এটি পারফরম্যান্সের দিক থেকে উন্নত হতে পারে, বিশেষত যখন রিসোর্সটির মান পরিবর্তন হয় না।
DynamicResource
DynamicResource হল একটি রিসোর্স রেফারেন্স করার জন্য ব্যবহৃত পদ্ধতি, যা UI উপাদান বা রিসোর্সের মান চলমানভাবে রেজলভ হয়। অর্থাৎ, DynamicResource এর মান runtime-এ পরিবর্তিত হতে পারে এবং UI তা স্বয়ংক্রিয়ভাবে রিফ্রেশ করবে। এটি UI এর পরিবর্তনশীল উপাদান বা চলমান প্রপার্টি ম্যানেজমেন্টে উপযোগী।
ব্যবহার:
- যখন রিসোর্সের মান চলমানভাবে পরিবর্তিত হতে পারে।
- রিসোর্সের পরিবর্তনের সাথে সাথে UI উপাদানগুলোকে আপডেট করতে যখন প্রয়োজন হয়।
উদাহরণ:
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DynamicResource Example" Height="300" Width="400">
<Window.Resources>
<SolidColorBrush x:Key="MyBrush" Color="LightBlue"/>
</Window.Resources>
<Grid Background="{DynamicResource MyBrush}">
<Button Content="Click Me" Width="100" Height="50"/>
</Grid>
</Window>
এখানে:
DynamicResourceব্যবহার করেMyBrushরিসোর্সটি গ্রিডের ব্যাকগ্রাউন্ড হিসেবে ব্যবহার করা হয়েছে। যদি রিসোর্সটি runtime-এ পরিবর্তিত হয়, তাহলে UI তা স্বয়ংক্রিয়ভাবে প্রতিফলিত করবে।
DynamicResource এর সুবিধা:
- রিফ্রেশযোগ্য: UI এর কোনো রিসোর্স পরিবর্তিত হলে UI তা স্বয়ংক্রিয়ভাবে প্রতিফলিত করতে পারে।
- থিম পরিবর্তন: UI থিম বা কালার স্কিম পরিবর্তন করার জন্য
DynamicResourceব্যবহার করা হয়, কারণ থিমের বিভিন্ন রিসোর্স runtime-এ পরিবর্তিত হতে পারে।
StaticResource vs DynamicResource
| বৈশিষ্ট্য | StaticResource | DynamicResource |
|---|---|---|
| রেজলভ সময় | একবার অ্যাপ্লিকেশন লোড হওয়ার সময় রেজলভ হয় | runtime (চলমান সময়) এ রেজলভ হয় |
| রিফ্রেশিং | রিসোর্সের মান পরিবর্তিত হলে UI আপডেট হয় না | UI এর রিসোর্স পরিবর্তন হলে UI স্বয়ংক্রিয়ভাবে আপডেট হয় |
| ব্যবহার | যখন রিসোর্স স্থির এবং পরিবর্তনযোগ্য নয় | যখন রিসোর্স পরিবর্তনশীল এবং UI এর আপডেট প্রয়োজন |
| পারফরম্যান্স | সাধারণত বেশি পারফরম্যান্স-ফ্রেন্ডলি | কিছুটা কম পারফরম্যান্স, কারণ এটি runtime-এ আপডেট হয় |
| উদাহরণ | ব্রাশ, ফন্ট, স্টাইল যা একবার সেট হয়ে যায় | থিম পরিবর্তন, ডাটা পরিবর্তন, অ্যাপ্লিকেশন সেটিংস |
সারাংশ
- StaticResource হল রিসোর্স রেফারেন্স করার পদ্ধতি যা একবার রেজলভ হয় এবং পরবর্তীতে কোনো পরিবর্তনকে প্রতিফলিত করে না। এটি সাধারণত স্থির UI উপাদানগুলির জন্য ব্যবহৃত হয়।
- DynamicResource হল রিসোর্স রেফারেন্স করার পদ্ধতি যা runtime-এ পরিবর্তিত হতে পারে এবং UI তে তার পরিবর্তন স্বয়ংক্রিয়ভাবে প্রতিফলিত হয়। এটি ডাইনামিক থিম পরিবর্তন বা চলমান ডাটা ম্যানেজমেন্টের জন্য ব্যবহৃত হয়।
StaticResource এবং DynamicResource এর সঠিক ব্যবহার আপনার অ্যাপ্লিকেশনের পারফরম্যান্স এবং কার্যকারিতা উন্নত করতে সাহায্য করবে।
Read more